package LCR;

public class getIntersectionNode {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode listA = headA;
        ListNode listB = headB;
        int numA = 0;
        int numB = 0;
        while (listA != null) {
            numA++;
            listA = listA.next;
        }
        while (listB != null) {
            numB++;
            listB = listB.next;
        }
        int len = numA - numB;//假设listA比listB 长
        if (len < 0) {//假设不成立
            listA = headB;
            listB = headA;
            len = -len;
        }else{
            listA = headA;
            listB = headB;
        }

        while (len > 0) {
            listA = listA.next;
            len--;
        }
        while (listA != null) {
            if (listA == listB) {
                return listA;
            }
            listA = listA.next;
            listB = listB.next;
        }
        return null;
    }
}
